Ein Modul ist vorerst ein entwurfs- und später ein programmiersprachlicher Baustein, der Funktionen (Aufgaben) zusammenfasst, die in einem inhaltlichen Zusammenhang stehen. Module sind meist hierarchisch verknüpft. Die Erstellung einer Modulhierarchie ist ein erster Modularisierungsschritt, dem sich oft eine vorläufige Aufteilung der Entwurfs- und Implementationsaufgaben auf die Projektmitglieder anschliesst. Nach der Modulhierarchie folgt der algorithmische Entwurf der einzelnen Module. Er besteht in der Regel aus einer umgangssprachlichen oder grafischen Beschreibung des Zwecks und des Ablaufs des Moduls.
Die Module der Entwurfsphase müssen nicht immer mit den später implementierten Modulen übereinstimmen. Die Entwurfsmodule von TESTS stimmen zum Beispiel schon deshalb nicht mit den späteren Formular- und Berichtsmodulen überein, weil Formulare und Berichte ohne Code nicht in der Modulhierarchie erscheinen.